﻿using System;
using System.Collections.Generic;
using System.Text;

namespace CoreRay
{
    /// <summary>
    /// The SceneObject class defines an object that can be added into a scene.
    /// A scene object has properties and can be indexed into different views required by 
    /// some modules. (Scene management, Graphics culling, Physical engine, etc.)
    /// </summary>
    public abstract class SceneObject
    {
        private static int currentIdNumber = 0;

        protected SceneObject()
        {
            // Init properties
            this.Id = currentIdNumber;
            this.Name = "Unknown Object";

            currentIdNumber++;
        }

        public int Id
        {
            get;
            private set;
        }

        public string Name
        {
            get;
            set;
        }
    }
}
